package com.haonan.springboot_exercise.dao;

import com.haonan.springboot_exercise.bean.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author haonan
 * @date 2021/5/13 15:20
 **/
@Repository
public interface AdminDao {
    /**
     * 判断用户是否是管理员
     * @param user_name
     * @param user_password
     * @return
     */
    public Boolean userIsAdmin(@Param("user_name") String user_name, @Param("user_password") String user_password);

    public void changeRoleOfUser(@Param("user_name") String user_name, @Param("role_id")Boolean role_id);

    public void changeStateOfUser(@Param("user_name") String user_name, @Param("state_flag") boolean state_flag);

    public void changeSmtpFlagOfUser(@Param("user_name") String user_name, @Param("smtp_flag") boolean smtp_flag);

    public void changePopFlagOfUser(@Param("user_name") String user_name, @Param("pop_flag") boolean pop_flag);

    public void changeInfoOfUser(@Param("user_name") String user_name, @Param("new_user_name") String new_user_name, @Param("new_user_password") String new_user_password);

    public void createNewUser(User user);

    public void deleteUser(@Param("user_name") String user_name);

    public User getUser(@Param("user_name") String user_name);

    public List<User> getUserByFuzzy(@Param("fuzzy_user_name") String fuzzy_user_name);

    /**
     * 返回用户列表（所有用户）
     * @return 所有用户实体的一个列表
     */
    public List<User> getAllUser();

    /**
     * 更改端口号
     * @param type
     * @param port
     */
    public void changePort(@Param("type") String type, @Param("port") int port);

    /**
     * 获取邮箱大小
     * @param type pop/smtp
     * @return
     */
    public Integer getBoxSize(@Param("type") String type);

    /**
     * 更改邮箱大小
     * @param type pop/smtp
     * @param inbox_size
     */
    public void setBoxSize(@Param("type") String type, @Param("inbox_size") int inbox_size);
}
